
var nativeApi = {
    //判断nativeApi是否初始化成功
    isInit :function () {
        return plus !== undefined;
    },
	//打开新的网页地址。
	//URL 地址， title 导航条中的title信息
	open : function(url){
		try{
			//plus.nativeUI.showWaiting('加载中');
	        var styles = {popGesture: 'close'};
	        var aniShow  ='slide-in-right';
	        url = encodeURI(url);
	        plus.webview.open( url, url, styles, aniShow );
		}catch (e) {
			window.location.href = url;
		}
		
	},
    close:function(){
    	try{
    		plus.webview.currentWebview().close();
		}catch (e) {
		}
        
    },
    //微信支付，微信支付必须打包后才生效
    //STR 微信支付后台SDK的签名字符串，不能使用JSON对象
    wxPay :function (str,successCallback,errorCallback) {
        plus.payment.request(wxChannel, str, function(result) {
            if(successCallback){
                successCallback(result);
            }
        }, function(e) {
            if(errorCallback){
                errorCallback(e);
            }
        });
    },
    //支付宝支付，测试环境可以用
    //STR 支付宝后台SDK的签名字符串，不能使用JSON对象
    alipay:function (str,successCallback,errorCallback) {
        plus.payment.request(aliChannel, str, function(result) {
            if(successCallback){
                successCallback(result);
            }
        }, function(e) {
            if(errorCallback){
                errorCallback(e);
            }
        });
    },
    //开始扫描二维码，相册的显示位置需要自行在HTML中绘制，并且设置id
    //需要显示相机的div的ID
    //建议一个id只启用一次二维码扫码，下一次，请更换ID
    scan:function (id,scanCallback) {
        scanCb = scanCallback;
        scan = new plus.barcode.Barcode(id);
        scan.onmarked = onmarked;
        scan.start();
    },
    //停止相册硬件扫描，节约内存
    closeScan:function () {
        scan.close();
    },
    /**
     * 分享到微信好友
     * @param params {
     *  url:打开的地址
     *  title : 标题
     *  content : 小字部分
     *  pic : 分享左侧图片的URL
     *  success : 分享成功的回调函数
     *  error : 分享成功的回调函数
     * }
     */
    shareQQ :function (params) {
        var msg = {
            href : params.url,
            title : params.title,
            content : params.content,
            thumbs : [ params.pic]
        };

        qqShare.send(msg,function () {
            if(params.success)
                params.success();
        },function () {
            if(params.error)
                params.error();
        })
    },
    /**
     * 分享到微信好友
     * @param params {
     *  url:打开的地址
     *  title : 标题
     *  content : 小字部分
     *  pic : 分享左侧图片的URL,
     *  success : 分享成功的回调函数
     *  error : 分享成功的回调函数
     * }
     */
    shareWx :function (params) {
        var msg = {
            extra: {
                scene: 'WXSceneSession'
            },
            href : params.url,
            title : params.title,
            content : params.content,
            thumbs : [ params.pic]
        };

        wxShare.send(msg,function () {
            if(params.success)
                params.success();
        },function (msg) {
        	plus.share.sendWithSystem({content:params.content,href:params.url}, function(){
    			console.log('分享成功');
    		}, function(e){
    			console.log('分享失败：'+JSON.stringify(e));
    		});
            if(params.error)
                params.error();
        })


    },
    /**
     * 分享到微信朋友圈
     * @param params {
     *  url:打开的地址
     *  title : 标题
     *  content : 小字部分
     *  pic : 分享左侧图片的URL
      *  success : 分享成功的回调函数
     *  error : 分享成功的回调函数
     * }
     */
    sharePyq :function (params) {
        var msg = {
            extra: {
                scene: 'WXSceneTimeline'
            },
            href : params.url,
            title : params.title,
            content : params.content,
            thumbs : [ params.pic]
        };
        wxShare.send(msg,function () {
            if(params.success)
                params.success();
        },function () {
            if(params.error)
                params.error();
        })
    },
    cImage:function(success){
    	var cmr = plus.camera.getCamera();
    	var res = cmr.supportedImageResolutions[0];
    	var fmt = cmr.supportedImageFormats[0];
    	console.log("Resolution: "+res+", Format: "+fmt);
    	cmr.captureImage( function( path ){
    			success(path);
    		},
    		function( error ) {
    			alert( "Capture image failed: " + error.message );
    		},
    		{resolution:res,format:fmt}
    	);
    },
    getLocalImagePath:function(path){
    	plus.io.resolveLocalFileSystemURL( path, function( entry ) {
			// 可通过entry对象操作test.html文件 
    		return entry.toLocalURL();
		}, function ( e ) {
			alert( "Resolve file URL failed: " + e.message );
		} );
    },
    //是否为IOS系统
    isIos :function () {
        return plus.os.name ==='iOS';
    },
    //当前应用版本号，打包的时候设置
    getVersion :function () {
        return plus.runtime.version;
    },
    /**
     * 升级安卓App，提供下载和自动安装Apk
     * @param url Apk下载地址
     */
    upgrade :function (url,onStateCallback,errorCallback) {
        //plus.runtime.install(path);
        var dtask = plus.downloader.createDownload(url, {}, function(d, status) {
            if (status == 200) {
                plus.nativeUI.toast("正在准备环境，请稍后！");
                sleep(1000);
                var path = d.filename;//下载apk
                plus.runtime.install(path); // 自动安装apk文件
            }else {
                 if(errorCallback)
                     errorCallback();
            }
        });
        if(onStateCallback)
            dtask.addEventListener( "statechanged", onStateCallback, false );
        dtask.start();
    },
    wxLogin:function(success){
    	var s = oa_auths[0];
    	if ( !s.authResult ) {
    		s.login( function(e){
    			s.getUserInfo( function(e2){
    				success(s.userInfo);
    			}, function(e){
    				alert( "获取用户信息失败："+e.message+" - "+e.code );
    			} );
    		}, function(e){
    			alert( "登录认证失败！" +JSON.stringify(e));
    		} );
    	}else{
    		s.getUserInfo( function(e2){
				success(e2.target.userInfo);
			}, function(e){
				alert( "获取用户信息失败："+e.message+" - "+e.code );
			} );
    	}
    }
	
	
}

var wxChannel = null; // 微信支付
var aliChannel = null; // 支付宝支付
var qqShare=null; //分享对象
var wxShare=null; //分享对象
var oa_auths=null;

mui.plusReady(function () {
	plus.nativeUI.closeWaiting();
	
	//把状态栏字体改成黑色：dark 白色：light 
	//plus.navigator.setStatusBarStyle("dark");
	
	/*plus.key.addEventListener("backbutton", function() {

        if (plus.os.name == "Android") {
            $ionicLoading.show({
                template: "再次点击返回键退出应用"
            });
                $timeout(function() {
                $ionicLoading.hide();
            plus.key.removeEventListener("backbutton", function() {});
                return;
                }, 100);
            plus.key.addEventListener("backbutton", function() {
                plus.runtime.quit();
            });
        } else {
            outSet("此平台不支持直接退出程序，请按Home键切换应用");
        }
        
	});*/
	
	
    plus.payment.getChannels(function(channels) {
        console.log("当前支付通道："+channels.length);
        for(var i in channels) {
            if(channels[i].id == "wxpay") {
                console.log("init wxpay channel")
                wxChannel = channels[i];
            } else {
                console.log("init alipay channel")
                aliChannel = channels[i];
            }
        }
    }, function(e) {
        alert("获取支付通道失败：" + e.message);
    });
    plus.share.getServices( function(s){
        for(var i in s) {
            if(s[i].id == "qq") {
                qqShare = s[i];
            } else  if(s[i].id == "weixin") {
                wxShare = s[i];
            } else {
                aliChannel = s[i];
            }
        }
    }, function(e){
        alert( "获取分享服务列表失败："+e.message );
    } );
    
    // 扩展API加载完毕，现在可以正常调用扩展API
	plus.oauth.getServices( function(services){
		oa_auths = services;
	}, function(e){
		alert( "获取分享服务列表失败："+e.message+" - "+e.code );
	} );
})

var scan = null;
var scanCb = null;
function onmarked( type, result ) {
    var text = '未知: ';
    switch(type){
        case plus.barcode.QR:
            text = 'QR: '; // 二维码
            break;
        case plus.barcode.EAN13:
            text = 'EAN13: ';
            break;
        case plus.barcode.EAN8:
            text = 'EAN8: ';
            break;
    }
    scan.close();
    scanCb(type,result);
}

//休眠方法
function sleep(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
}

